import axios from 'axios'
import store from '@/store/store'
import router from '@/router'
import {getCode} from '@/api/login.js'
// axios.defaults.withCredentials = true;
//var host = process.env.NODE_ENV === 'development' ? 'http://uiapi.qicubao.com' : 'http://uiapi.qicubao.com';
const service = axios.create({
  timeout: 5000,
  headers: {
    'Content-Type': 'application/json; charset=utf-8',
    'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8',
    '.AspNetCore.Culture': 'c=zh-Hans|uic=zh-Hans',
  },
})


// request请求拦截器 ==> 对请求参数做处理
// 请求拦截  设置统一header
service.interceptors.request.use(config => {
    // 在发送请求之前做些什么
    let token = store.state.token
    //console.log(token);
    if (token){
      config.headers['Authorization'] = "Bearer " + token
    }
    return config
}, error => {
  return Promise.reject(error)
})

// service.interceptors.request.use(
//   // 在发送请求之前做些什么
//   function (config) {
//     let token = store.state.token
//     if (token) {
//       config.headers['Authorization'] = "Bearer " + token
//     }
//     return config
//   },
// )



//response拦截器

service.interceptors.response.use(
  response => {
    var res = response.data;
    // console.log(res)
    // if (res.Result.Code != 0 && res.Result.Code) {
    //   marg.$messager.alert({
    //     title: "提示",
    //     msg: res.Result.Message
    //   });
    //   return
    // }
    // if (response.data.code == 51001) { // 重新登录
    //   Message.error({
    //     content: response.data.msg,
    //     duration: 2
    //   })
    //   router.push({
    //     path: '/login'
    //   })
    //   return false
    // }
    //console.log(res);
    return res;
  },error => {
    if(error.response && error.response.data && error.response.data.Error.Message){
      marg.$messager.alert({
        title: "Error",
        icon: "error",
        msg: error.response.data.Error.Message
      });
    }
    if(error.response.status==401){
          window.localStorage.removeItem('token')
          getCode(router.app._route.path,router.app._route.query)
      }else{
        marg.$messager.alert({
          title: "Error",
          icon: "error",
          msg: error.message
        });
      return false
    }
    if (error && error.response && sterror.response == 401) {
        marg.$messager.alert({
          title: "Error",
          icon: "error",
          msg: "token值无效，请重新登录"
        });
        // 清除token
        store.state.token = null;
        this.$store.commit("setToken", null);

        // 页面跳转
        router.push('/login')
    }

    // marg.$messager.alert({
    //   title: "Error",
    //   icon: "error",
    //   msg: "请求出错，请稍后重试。"
    // });
    return Promise.reject(error)
  }
)

export default service
